home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Adobe Graphics & Publishing SDK 1996 December
/
Adobe Graphics & Publishing SDK 1996 December.iso
/
mac
/
Illustrator 6.0 SDK r1 Mac
/
AI Plugin Interface
/
AIWindow.h
< prev
Wrap
Text File
|
1995-12-21
|
4KB
|
164 lines
/**
AIWindow.h
Copyright (c) 1995 Adobe Systems Incorporated.
All Rights Reserved
Adobe Illustrator 6.0 Window Suite.
**/
#ifndef __AIWindow__
#define __AIWindow__
/*******************************************************************************
**
** Imports
**
**/
#include "AITypes.h"
#include "AIEvent.h"
#include "AIPlugin.h"
#if Macintosh
#ifdef __cplusplus
extern "C" {
#endif
#if PRAGMA_ALIGN_SUPPORTED
#pragma options align=mac68k
#endif
#if PRAGMA_IMPORT_SUPPORTED
#pragma import on
#endif
#endif
/*******************************************************************************
**
** Constants
**
**/
#define kAIWindowSuite "AI Window Suite"
#define kAIWindowVersion 3
#if Macintosh
#define kAIMacWindowSuite "AI Mac Window Suite"
#define kAIMacWindowVersion 3
#endif
#define kAIWindowChangedNotifier "AI Window Changed Notifier"
#define kAIWindowLoseFocusNotifier "AI Window Lose Focus Notifier"
#define kAIWindowGainFocusNotifier "AI Window Gain Focus Notifier"
// These are the window messages.
#define kSelectorAIWindowEvent "AI Window Event"
#define kSelectorAIWindowTrackCursor "AI Window Track Cursor"
#define kSelectorAIGainWindowKeyboardFocus "AI Gain Window Keyboard Focus"
#define kSelectorAILoseWindowKeyboardFocus "AI Lose Window Keyboard Focus"
#if Macintosh
#define kSelectorAIMacShowWindow "AI Mac Show Window"
#define kSelectorAIMacHideWindow "AI Mac Hide Window"
#define kSelectorAIMacZoomWindow "AI Mac Zoom Window"
#endif
// These are the options available to a window.
#define kWindowWantsToTrackCursorOption (1L<<0)
#define kWindowWantsKeyboardFocusOption (1L<<1)
/*******************************************************************************
**
** Types
**
**/
// This is a reference to a window. It is never dereferenced.
typedef struct _t_AIWindowOpaque *AIWindowHandle;
#if Macintosh
// Macintosh parameters used when creating a window.
typedef struct {
Rect bounds;
StringPtr title;
short wDefProcID;
Boolean goAwayFlag;
long refCon;
} PlatformAddWindowData;
// A Macintosh window.
typedef WindowPtr PlatformWindow;
#endif
// The contents of a window message.
typedef struct {
AIPluginData d;
AIWindowHandle window;
PlatformEvent event;
} AIWindowMessage;
/*******************************************************************************
**
** Suite
**
**/
typedef struct {
MACPASCAL FXErr (*AddWindow) ( AIPluginHandle self, char *name, long options,
PlatformAddWindowData *data, AIWindowHandle *window );
MACPASCAL FXErr (*GetWindowName) ( AIWindowHandle window, char **name );
MACPASCAL FXErr (*GetWindowOptions) ( AIWindowHandle window, long *options );
MACPASCAL FXErr (*SetWindowOptions) ( AIWindowHandle window, long options );
MACPASCAL FXErr (*GrabKeyboardFocus) ( AIWindowHandle window );
MACPASCAL FXErr (*LoseKeyboardFocus) ( AIWindowHandle window );
MACPASCAL FXErr (*GetWindowPlugin) ( AIWindowHandle window, AIPluginHandle *plugin );
MACPASCAL FXErr (*CountWindows) ( long *count );
MACPASCAL FXErr (*GetNthWindow) ( long n, AIWindowHandle *window );
MACPASCAL FXErr (*GetPlatformWindow) ( AIWindowHandle window,
PlatformWindow *platformWindow );
} AIWindowSuite;
#if Macintosh
typedef struct {
MACPASCAL void (*MacXDragWindow) ( WindowPtr theWindow, Point startPoint,
Rect *limitRect );
MACPASCAL long (*MacXGrowWindow) ( WindowPtr theWindow, Point startPoint,
Rect *sizeRect );
MACPASCAL Boolean (*MacXZoomWindow) ( WindowPtr theWindow,
short desiredWidth, short desiredHeight, Boolean stickToEdges,
short *newWidth, short *newHeight );
} AIMacWindowSuite;
#endif
#if Macintosh
#if PRAGMA_IMPORT_SUPPORTED
#pragma import off
#endif
#if PRAGMA_ALIGN_SUPPORTED
#pragma options align=reset
#endif
#ifdef __cplusplus
}
#endif
#endif
#endif